//
//  ConnectorViewController.h
//  CocoaSynth
//
//  Created by Thomas Dupont on 19/02/10.
//  Copyright 2010 Apple Inc. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@protocol ConnectorProtocol;

@class PortInViewController;
@class PortOutViewController;
@class ConnectorLayoutViewController;
@class PortViewController;

/*!
 @class		ConnectorViewController
 @abstract	Controleur de la vue d'un connecteur.
 */
@interface ConnectorViewController : NSViewController {
	ConnectorLayoutViewController* layout;
	id<ConnectorProtocol> model;
	PortInViewController* portIn;
	PortOutViewController* portOut;
}

@property (readonly) PortInViewController* portIn;
@property (readonly) PortOutViewController* portOut;

/*!
 @method	initWithLayout:andPortIn:andPortOut
 @abstract	Constructeur du connecteur.
 @param		aLayout Le controleur de la vue des connecteurs.
 @param		aPortIn Le port in du connecteur.
 @param		aPortOut Le port out du connecteur.
 */
- (id)initWithLayout:(ConnectorLayoutViewController*)aLayout andPortIn:(PortInViewController*)aPortIn andPortOut:(PortOutViewController*)aPortOut;

/*!
 @method	pointForPort:
 @abstract	Renvoi l'emplacement du port.
 @param		aPort Le port duquel on veut l'emplacement.
 @return	Le point du port pass&eacute; en param&egrave;tre.
 */
- (NSPoint)pointForPort:(PortViewController*)aPort;

/*!
 @method	refresh
 @abstract	Redessine le connecteur.
 */
- (void)refresh;

/*!
 @method	containsPort:
 @abstract	Renvoi si oui ou non le connecteur contient le port pass&eacute; en param&egrave;tre.
 @param		aPort Le port
 @return	Un bool&eacute;en valant oui si le connecteur contient le port pass&eacute; en param&egrave;tre, non sinon.
 */
- (BOOL)containsPort:(PortViewController*)aPort;

/*!
 @method	disconnect
 @abstract	D&eacute;connecte le connecteur.
 */
- (void)disconnect;

@end
